package datastructure.stackAndQueue;

import java.util.Arrays;

public class RadixSort {
	
	
	public void radix(int[] a,int k){	//kΪλ��
		LinkedQueue[] lqArray = new LinkedQueue[10];
		for(int i=0;i<10;i++)
			lqArray[i] = new LinkedQueue();
		
		int j=1;
		int pass=0;
		while(pass<k){	//��˳��ȡ�������ڵ����,�����µĶ���
			int index = 0;
			for(int i=0;i<a.length;i++){	//��������a,���������
				lqArray[(a[i]%(j*10))/j].enqueue(new Integer(a[i]));
			}
			for(int i=0;i<10;i++){		//�������е���˳��ŵ�������
				while(!lqArray[i].isEmpty()){
					a[index++] = ((Integer)lqArray[i].dequeue()).intValue();
				}
			}
			j *= 10 ;
			pass++;
		}
		
		System.out.println(Arrays.toString(a));
		
	}
	
	public static void main(String[] args){
		RadixSort rs = new RadixSort();
		int[] a = {27,91,1,97,17,23,84,28,72,5,67,25};
		rs.radix(a, 2);
	}
}
